package com.hao.study.config;

import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * Kaptcha配置类，用于配置验证码的相关属性。
 */
@Configuration
public class KaptchaConfig {

    /**
     * 创建并配置DefaultKaptcha bean实例。
     *
     * @return 配置好的DefaultKaptcha实例。
     */
    @Bean
    public DefaultKaptcha getDefaultKaptcha() {
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
        // 配置验证码边框，设置为无边框
        properties.setProperty("kaptcha.border", "no");
        // 配置验证码文字颜色，设置为黑色
        properties.setProperty("kaptcha.textproducer.font.color", "black");
        // 配置验证码字符间距，设置为5像素
        properties.setProperty("kaptcha.textproducer.char.space", "5");
        // 配置验证码图片宽度，设置为160像素
        properties.setProperty("kaptcha.image.width", "160");
        // 配置验证码图片高度，设置为60像素
        properties.setProperty("kaptcha.image.height", "60");
        // 配置验证码字体大小，设置为40像素
        properties.setProperty("kaptcha.textproducer.font.size", "40");
        // 配置验证码字符长度，设置为5个字符
        properties.setProperty("kaptcha.textproducer.char.length", "5");
        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}
